草庐IT

c++ - 从 C++ 类制作 Visual C++ DLL

全部标签

windows - 关于将 dll 部分复制到内存

voidCopySections(constunsignedchar*data,PIMAGE_NT_HEADERSold_headers,PMEMORYMODULEmodule){inti,size;unsignedchar*codeBase=module->codeBase;unsignedchar*dest;PIMAGE_SECTION_HEADERsection=IMAGE_FIRST_SECTION(module->headers);for(i=0;iheaders->FileHeader.NumberOfSections;i++,section++){if(section->

windows - 为什么 64 位进程不能使用 32 位 dll?

在这篇文章中,我将讨论使用C++和Win32API创建的nativeWindows应用程序和DLL。来自帖子CanIloada32bitDLLintoa64bitprocessonWindows?我了解到64位进程不能直接使用32位DLL。解决此问题的一种方法是在32位进程中托管DLL并使用某种形式的IPC。既然如此,这背后的原因是什么?为什么64位进程不能使用32位DLL?难道是x86和x64指令集的区别? 最佳答案 如果传递给32位代码的地址有任何高于第32集的位,它将由于指针大小不匹配而丢失,并且很可能导致AV。

windows - 如何在 cmd.exe 默认情况下制作 Unicode 字符集?

Windows的cmd.exe默认安装的866字符集与光荣的Unicode相比很差而且不方便。我可以默认安装Unicode或将cmd.exe替换到另一个控制台并将其设置为默认值以便程序使用它而不是cmd.exe吗?我知道chcp65001仅在运行的控制台中更改编码。我想在系统级别更改字符集。 最佳答案 在我尝试了algirdas的解决方案后,我的Windows崩溃了(Win7Pro64位),所以我决定尝试不同的解决方案:开始运行(Win+R)输入cmd/Kchcp65001你会得到大部分你想要的。要从任务栏或其他任何地方启动它,创建

c++ - 哪个 DLL 有 PathCchAppend?

我正在尝试有条件地使用(如果可用)函数PathCchAppend.我从headerpathcch.h中获得了函数签名。但是,当我尝试从SHLWAPI.DLL获取函数地址时,它失败了:autopca=GetProcAddress(GetModuleHandle(L"shlwapi.dll"),"PathCchAppend");使用Depends,我看到这个函数在这个DLL中不存在(我在Windows10上)。不存在任何pathcch.dll,因此也无法加载它。这个函数放在哪个DLL中?编辑:感谢答案。在这里,我找到了以下答案中提到的DLL名称:https://learn.microsof

windows - 如何制作接受医学术语的听写语法?

我正在使用sapi5.4并且我的语法文件包含但我也知道听写将只包含医学术语,有没有办法在语法文件中指定它? 最佳答案 您没有在语法中指定听写主题;你用代码来做。但要做到这一点,您需要医学听写语法。TrigramTechnology卖一个,但是很贵。购买并安装后,文档将描述听写主题。一旦你有了它,代码就非常简单了:ISpRecoGrammarpGrammar;//assumesalreadycreatedHRESULThr=_cpGrammar->LoadDictation(topic,SPLO_STATIC);//topicdefi

windows - 想要在一组修订之间制作一个 svn 补丁文件

我想通过svn命令行或使用Tortoise为一组修订创建补丁文件。如果重要的话,我正在使用Win7。我不需要做差异。我能做到。我有一些软件的两个不同版本。版本A中修复了一个错误,该错误涉及相当多的文件。我想将它移植到版本B。除了逐个文件的基础上,我没有看到一种简单的方法来做到这一点。我可以单击文件并保存修订,但它并不能像保存补丁文件那样真正保留文件夹结构。谢谢,埃里克 最佳答案 我个人会选择命令行svndiff。如果您还没有下载链接,请点击此处:http://subversion.apache.org/packages.html#w

windows - MinGW - 加载 .dll 后,应用程序以异常方式终止(完成后)

在使用Cygwin的MinGW进行编译时,我在Windows上动态加载共享库时遇到问题。该应用程序由6个部分组成:2个静态库、3个共享库和1个使用静态库并在运行时加载共享库的可执行文件。我在Cygwin中使用i686-pc-mingw32-g++。所有源文件都使用-std=c++11标志进行编译,它们的链接如下:Staticlibraries:i686-pc-mingw32-arrcslibxxx.abin/*.oi686-pc-mingw32-arrcslibyyy.abin/*.oEachsharedlibrary:i686-pc-mingw32-g++-fPIC-shared-o

c# - 如何在 Windows 机器上制作虚拟扩展屏幕?

我必须开发一个Windows应用程序,其目的是将屏幕分成两个虚拟显示器,就像我们插入第二个显示器一样,​​Windows检测这两个显示器并根据此屏幕截图提供设置。我必须通过虚拟地模拟连接第二台显示器来实现此功能。请指导我如何实现这一目标以及我应该遵循什么逻辑?我应该关注哪种WindowsAPI?我是否需要与Windows显示驱动程序进行交互或其他什么?此应用程序必须使用易于构建的C#或VB或VC++开发。此应用程序的输出将导致屏幕被分成两个屏幕,并且应该作为两个单独的屏幕显示给其他应用程序。感谢和问候。 最佳答案 可能有一个api可

java - 如何为同时安装 mysql 的 java 程序制作安装程序?

当程序在windows上安装时,我希望安装程序检查是否安装了mysql,如果没有安装它(或者至少提供一个网站链接,以便用户可以安装它)我确信这是可能的,我已经尝试了一段时间了。如果您可以让安装程序检查用户是否安装了java,如果没有安装,那么您肯定可以对mysql执行相同的操作吗?也许我看错了-我是否应该让java程序检查是否安装了mysql并在没有安装时安装它?如果是这样,我该怎么做?任何帮助将不胜感激,我已经坚持了很长时间。 最佳答案 我指的是this回答。Javaiscrossplatform,MySQLisn't,soyou

windows - 我正在尝试制作一个消息系统,理论上可以将消息从一个批处理文件发送到另一个批处理文件,同时保持两者都打开

我已经为sender.bat和receiver.bat编写了一些代码,但问题是,当我从sender.bat发送消息时,它会调用receiver.bat,这时我遇到了两个问题:1)sender.bat关闭(我希望它保持打开状态以便我可以发送更多消息)并且receiver.bat打开(这是我想要的)但是当它打开时它会带来第二个问题。2)它不断重复相同的(第一条)消息所以我只给你代码,希望有人知道我做错了什么发件人.bat:@echoofftitle"MessageSender"set/pname=Username::xset/pmes=Message:setnmes=%name%Says: